// 在types.ts中明确定义
type SpecName = string; // 规格名称
type SpecValueType = string; // 规格值
export interface ProductListParams {
  page: number;
  limit: number;
  name?: string;
  status?: number | string;
}

export interface CategoryItem {
  id: string;
  name: string;
  parentId: string;
}
export interface ProductListResponse {
  pagination: any;
  list: ProductItem[];
}
export interface ProductDetailSkus {
  
}
export interface ProductDetailSkusResponse {
  data: {
    skus: ProductDetailSkus[];
  };
}
export interface ProductDetailResponse {
  data: ProductInfo;
}
// 商品基础信息接口（所有商品共有的核心字段）
export interface ProductItem {
  id: string | number;                  // 商品唯一标识（字符串或数字）
  name: string;                         // 商品名称（必填）
  code: string;                         // 商品编码（必填）
  thumbnail: string;                    // 缩略图URL（必填）
  images?: string[];                    // 商品图片列表（可选）
  videoUrl?: string;                    // 商品视频链接（可选）
  description?: string;                 // 商品描述（可选）
  sku: string;                          // SKU编码（必填）
  spec: string;                         // 商品规格（如"颜色:红色;尺码:M"，必填）
  price: string | number;               // 售价（支持字符串或数字，如"99.9"或99.9）
  costPrice: number;                    // 成本价（必填，数字类型）
  stock?: number;                       // 库存（可选，默认为0）
  soldNum?: number;                     // 销售量（可选，默认为0）
  weight?: number;                      // 重量（可选，单位：kg）
  status: "draft" | "published" | "archived"; // 商品状态（枚举：草稿/上架/下架/删除，必填）
  saleTags?: string;                    // 促销标签（如"限时折扣"，可选）
  tags?: string[];                      // 商品标签（如["新品"、"热销"]，可选）
  hot?: boolean;                        // 是否热门（可选，默认为false）
  category: string;                     // 分类名称（必填，如"手机数码"）
  category_id: string;                  // 分类ID（必填，如"1001"）
  createTime: string;                   // 创建时间（必填，ISO格式字符串）
  updateTime: string;                   // 更新时间（必填，ISO格式字符串）
}

// 商品详情接口（继承基础信息，扩展详情相关字段）
export interface ProductInfo extends ProductItem {
  priceRange: [number, number];         // 价格区间（如[99, 299]，必填）
  defaultImage: string;                 // 默认展示图片（必填）
  slug: string;                         // SEO友好URL（必填，如"iphone-15-pro"）
  sku_name: string;                     // SKU名称（如"红色 M 256GB"，必填）
  skus: Sku[];                          // SKU列表（必填，包含所有规格组合）
  specs: Spec[];
  promotions?: Array<{                  // 促销活动（可选）
    type: string;                       // 活动类型（如"coupon"、"discount"）
    title: string;                      // 活动标题（如"满100减20"）
    desc: string;                       // 活动描述（如"全场商品满100元减20元"）
  }>;
  services?: Array<{                    // 附加服务（可选）
    name: string;                       // 服务名称（如"7天无理由退换"）
    icon: string;                       // 服务图标URL（必填）
  }>;
  rating?: {                            // 商品评分（可选）
    average: number;                    // 平均分（如4.5）
    count: number;                      // 评分人数（如100+）
    distribution: number[];             // 分数分布（如[10, 20, 30, 40, 50]，对应1-5星）
  };
}


export interface Sku {
  id: string|number;
  sku_name: string;
  specs?: Record<string, string>;
  price: number;
  stock?: number;
  thumbnail: string;
  image?: string; // 可选属性
  originalPrice?: number;
  barcode?: string;
  weight?: string;
}

export interface Spec {
  name: SpecName;
  values: SpecValueType[];
  images?: Record<SpecValueType, string>;
}
export interface CreateProductParams {
  name: string;
  price: number;
  stock: number;
  status: string;
  category_id: string;
}

export interface SpecListResponse {
  pagination: any;
  list: SpecItem[];
}
export interface SpecValue {
  id: string | number;
  name: string;
  value?: string;     // 可选，兼容旧代码
  image?: string;     // 规格值对应图片
  // 其他可能存在的属性...
}

// 完整规格类型定义
export interface SpecType {
  id: string | number;
  name: string;       // 规格名称 (如 "颜色")
  values: SpecValue[]; // 规格值列表
  
  // 可选业务字段
  category_id?: string;
  description?: string;
  deleted_at?: string | null;
}
// 定义规格类型
export interface SpecItem {
  id: string;
  name: string;
  category_id: string; // 分类ID
  values: SpecValue[];
  description: string;
  deleted_at?: string;
}

export interface CreateSpecTypesParams {
  name: string;
  values: string[];
  category_id: string;
  description: string;
}


// SKU 规格项
export interface SkuSpec {
  spec_type_id: string | number;
  spec_name: string;
  spec_value_id: string | number;
  value: string;
  image?: string;     // 可选覆盖图片
}

// SKU 完整定义
export interface SkuItem {
  id: string;
  sku_name: string;   // 组合名称 (如 "红色/XL")
  specs: SkuSpec[];   // 规格明细
  price: number;
  stock: number;
  image: string | null; // 主图
  barcode?: string;    // 条形码
  weight?: number;     // 重量
  cost_price?: number; // 成本价
}

export interface RecommendItem{
  id: string;
  name: string;
  thumbnail: string;
  type: string;
  price: string;

}